home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / cat / memory.i < prev    next >
Text File  |  1997-10-26  |  2KB  |  82 lines

  1. IMPLEMENTATION MODULE Memory;
  2.  
  3. FROM SYSTEM IMPORT ADDRESS, ASSEMBLER;
  4.  
  5.  
  6. (*$L-,R-,S-,M-*)
  7.  
  8. PROCEDURE MoveBlock(Source, Dest : ADDRESS; Count : LONGCARD);
  9. BEGIN
  10.   ASSEMBLER
  11.     MOVE.L      -(A3),D0        ;Anzahl
  12.     MOVEA.L     -(A3),A1        ;Source
  13.     MOVEA.L     -(A3),A0        ;Dest
  14.     TST.L        D0
  15.     BEQ.S       endMove
  16.     CMPI.L      #$FFFF,D0
  17.     BCC.S       bigOne
  18.     CMPA.L      A1,A0
  19.     BEQ.S       endMove
  20.     BHI.S       normal
  21.     
  22. ;---------------------------------------------------------
  23.     
  24. viceVersa:
  25.     ADDA.L      D0,A0           ;jetzt am Ende anfangen
  26.     ADDA.L      D0,A1           ;wg. berschneiden
  27.     SUBQ.L      #1,D0           ;wg. dingens
  28.  
  29. Loop1:
  30.     MOVE.B      -(A0),-(A1)
  31.     DBF         D0,Loop1
  32.     BRA.S       endMove
  33.  
  34. ;---------------------------------------------------------
  35.  
  36. normal:
  37.     SUBQ.L      #1,D0
  38.  
  39. Loop2:
  40.     MOVE.B      (A0)+,(A1)+
  41.     DBF         D0,Loop2
  42.  
  43.     BRA.S       endMove
  44.  
  45. ;=========================================================
  46.  
  47. bigOne:
  48. ;    MOVEA.L     -(A3),A1        ;Source
  49. ;    MOVEA.L     -(A3),A0        ;Dest
  50.     CMPA.L      A1,A0
  51.     BEQ.S       endMove
  52.     BHI.S       normal2         ;a0 > a1 - Source > Dest
  53.  
  54. ;--------------------------------------------------------
  55.  
  56. viceVersa2:
  57.     ADDA.L      D0,A0           ;jetzt am Ende anfangen
  58.     ADDA.L      D0,A1           ;wg. berschneiden
  59.  
  60. Loop21:
  61.     MOVE.B      -(A0),-(A1)
  62.     SUBQ.L      #1,D0
  63.     BNE.S       Loop21
  64.     
  65.     BRA.S       endMove
  66.     
  67. ;--------------------------------------------------------
  68.     
  69. normal2:
  70.  
  71. Loop22:
  72.     MOVE.B      (A0)+,(A1)+
  73.     SUBQ.L      #1,D0
  74.     BNE.S       Loop22
  75.  
  76. endMove:
  77.  
  78.   END;
  79. END MoveBlock;
  80.  
  81. END Memory.
  82.